# coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import logging

logging.basicConfig(level=logging.DEBUG)

# 获得浏览器对象
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

# 通过id定位元素
driver.find_element(by=By.ID, value="kw").send_keys("Selenium2")
driver.find_element(by=By.ID, value="su").click()

# 通过名称定位元素
# driver.find_element(by=By.NAME, value="wd").send_keys("Selenium2")
# driver.find_element(by=By.ID, value="su").click()

# 通过class属性定位元素
# driver.find_element(by=By.CLASS_NAME, value="s_ipt").send_keys("Selenium2")
# time.sleep(2)
# 未能通过bg s_btn找到该元素
# driver.find_element(by=By.CLASS_NAME, value="bg s_btn").click()

# 通过tag name定位百度的输入框(因为tag有很多,识别率很低) 但引发了异常(element not intractable,元素不可交互)
# driver.find_element(by=By.TAG_NAME, value="input").send_keys("Selenium2")
# driver.find_element_by_tag_name("input").send_keys("Selenium2")

# link定位 通过元素标签对之间的文本信息来定位元素
# driver.find_element(By.LINK_TEXT, value="新闻").click()

# partial link定位 对link定位的一种补充,有些文本链接会比较长,我们可以取文本链接的一部分定位,只要这一部分信息可以唯一地标识这个链接
# driver.find_element(By.PARTIAL_LINK_TEXT, value="About")

# xpath定位 绝对路径定位
# driver.find_element_by_xpath("/html/body/div/div[2]/div/div/div/from/span/input")
# driver.find_element_by_xpath("/html/body/div/div[2]/div/div/div/from/span[2]/input")

# xpath定位 利用元素属性定位  //表示当前页面某个录入下 input表示定位元素的标签名 [@id='kw']表示这个元素的id属性值
# 如果不想指定标签名,则也可以用星号(*)代替
# driver.find_element(By.XPATH, value="//input[@id='kw']").send_keys("Selenium2")
# driver.find_element(By.XPATH, value="//input[@id='su']").click()

# driver.find_element(By.XPATH, value="//input[@name='wd']").send_keys("Selenium2")
# driver.find_element(By.XPATH, value="//input[@id='su']").click()

# driver.find_element(By.XPATH, value="//input[@class='s_ipt']").send_keys("Selenium2")
# driver.find_element(By.XPATH, value="//input[@class='bg s_btn']").click()

# CSS定位 需要了解CSS选择器的常见语法
# 1) 通过class属性定位元素
# driver.find_element(By.CSS_SELECTOR, value=".s_ipt").send_keys("Selenium2")
# driver.find_element(By.CSS_SELECTOR, value=".bg s_btn").click()

# 2)通过id属性定位:
# driver.find_element_by_css_selector("#kw").send_keys("Selenium2")
# driver.find_element_by_css_selector("#su").click()

driver.quit()

































